<?xml version='1.0' encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html lang="en" xml:lang="en" xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <link href="cpip.css" rel="stylesheet" type="text/css" />
    <title>File: /Users/paulross/dev/linux/linux-3.13/include/linux/byteorder/generic.h</title>
  </head>
  <body>
    <h1>File: /Users/paulross/dev/linux/linux-3.13/include/linux/byteorder/generic.h</h1>
    <p>Green shading in the line number column
means the source is part of the translation unit, red means it is conditionally excluded.
Highlighted line numbers link to the translation unit page. Highlighted macros link to
the macro page.</p>
    <pre><a name="1" /><span class="True">       1:</span> <span class="f">#</span><span class="n">ifndef</span> <a href="cpu.c_macros_noref.html#_X0xJTlVYX0JZVEVPUkRFUl9HRU5FUklDX0hfMA__"><span class="b">_LINUX_BYTEORDER_GENERIC_H</span></a>
<a name="2" /><span class="True">       2:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_X0xJTlVYX0JZVEVPUkRFUl9HRU5FUklDX0hfMA__"><span class="b">_LINUX_BYTEORDER_GENERIC_H</span></a>
<a name="3" /><span class="True">       3:</span> 
<a name="4" /><span class="True">       4:</span> <span class="k">/*</span>
<a name="5" /><span class="True">       5:</span> <span class="k"> * linux/byteorder_generic.h</span>
<a name="6" /><span class="True">       6:</span> <span class="k"> * Generic Byte-reordering support</span>
<a name="7" /><span class="True">       7:</span> <span class="k"> *</span>
<a name="8" /><span class="True">       8:</span> <span class="k"> * The &quot;... p&quot; macros, like le64_to_cpup, can be used with pointers</span>
<a name="9" /><span class="True">       9:</span> <span class="k"> * to unaligned data, but there will be a performance penalty on </span>
<a name="10" /><span class="True">      10:</span> <span class="k"> * some architectures.  Use get_unaligned for unaligned data.</span>
<a name="11" /><span class="True">      11:</span> <span class="k"> *</span>
<a name="12" /><span class="True">      12:</span> <span class="k"> * Francois-Rene Rideau &lt;fare@tunes.org&gt; 19970707</span>
<a name="13" /><span class="True">      13:</span> <span class="k"> *    gathered all the good ideas from all asm-foo/byteorder.h into one file,</span>
<a name="14" /><span class="True">      14:</span> <span class="k"> *    cleaned them up.</span>
<a name="15" /><span class="True">      15:</span> <span class="k"> *    I hope it is compliant with non-GCC compilers.</span>
<a name="16" /><span class="True">      16:</span> <span class="k"> *    I decided to put __BYTEORDER_HAS_U64__ in byteorder.h,</span>
<a name="17" /><span class="True">      17:</span> <span class="k"> *    because I wasn&apos;t sure it would be ok to put it in types.h</span>
<a name="18" /><span class="True">      18:</span> <span class="k"> *    Upgraded it to 2.1.43</span>
<a name="19" /><span class="True">      19:</span> <span class="k"> * Francois-Rene Rideau &lt;fare@tunes.org&gt; 19971012</span>
<a name="20" /><span class="True">      20:</span> <span class="k"> *    Upgraded it to 2.1.57</span>
<a name="21" /><span class="True">      21:</span> <span class="k"> *    to please Linus T., replaced huge #ifdef&apos;s between little/big endian</span>
<a name="22" /><span class="True">      22:</span> <span class="k"> *    by nestedly #include&apos;d files.</span>
<a name="23" /><span class="True">      23:</span> <span class="k"> * Francois-Rene Rideau &lt;fare@tunes.org&gt; 19971205</span>
<a name="24" /><span class="True">      24:</span> <span class="k"> *    Made it to 2.1.71; now a facelift:</span>
<a name="25" /><span class="True">      25:</span> <span class="k"> *    Put files under include/linux/byteorder/</span>
<a name="26" /><span class="True">      26:</span> <span class="k"> *    Split swab from generic support.</span>
<a name="27" /><span class="True">      27:</span> <span class="k"> *</span>
<a name="28" /><span class="True">      28:</span> <span class="k"> * TODO:</span>
<a name="29" /><span class="True">      29:</span> <span class="k"> *   = Regular kernel maintainers could also replace all these manual</span>
<a name="30" /><span class="True">      30:</span> <span class="k"> *    byteswap macros that remain, disseminated among drivers,</span>
<a name="31" /><span class="True">      31:</span> <span class="k"> *    after some grep or the sources...</span>
<a name="32" /><span class="True">      32:</span> <span class="k"> *   = Linus might want to rename all these macros and files to fit his taste,</span>
<a name="33" /><span class="True">      33:</span> <span class="k"> *    to fit his personal naming scheme.</span>
<a name="34" /><span class="True">      34:</span> <span class="k"> *   = it seems that a few drivers would also appreciate</span>
<a name="35" /><span class="True">      35:</span> <span class="k"> *    nybble swapping support...</span>
<a name="36" /><span class="True">      36:</span> <span class="k"> *   = every architecture could add their byteswap macro in asm/byteorder.h</span>
<a name="37" /><span class="True">      37:</span> <span class="k"> *    see how some architectures already do (i386, alpha, ppc, etc)</span>
<a name="38" /><span class="True">      38:</span> <span class="k"> *   = cpu_to_beXX and beXX_to_cpu might some day need to be well</span>
<a name="39" /><span class="True">      39:</span> <span class="k"> *    distinguished throughout the kernel. This is not the case currently,</span>
<a name="40" /><span class="True">      40:</span> <span class="k"> *    since little endian, big endian, and pdp endian machines needn&apos;t it.</span>
<a name="41" /><span class="True">      41:</span> <span class="k"> *    But this might be the case for, say, a port of Linux to 20/21 bit</span>
<a name="42" /><span class="True">      42:</span> <span class="k"> *    architectures (and F21 Linux addict around?).</span>
<a name="43" /><span class="True">      43:</span> <span class="k"> */</span>
<a name="44" /><span class="True">      44:</span> 
<a name="45" /><span class="True">      45:</span> <span class="k">/*</span>
<a name="46" /><span class="True">      46:</span> <span class="k"> * The following macros are to be defined by &lt;asm/byteorder.h&gt;:</span>
<a name="47" /><span class="True">      47:</span> <span class="k"> *</span>
<a name="48" /><span class="True">      48:</span> <span class="k"> * Conversion of long and short int between network and host format</span>
<a name="49" /><span class="True">      49:</span> <span class="k"> *    ntohl(__u32 x)</span>
<a name="50" /><span class="True">      50:</span> <span class="k"> *    ntohs(__u16 x)</span>
<a name="51" /><span class="True">      51:</span> <span class="k"> *    htonl(__u32 x)</span>
<a name="52" /><span class="True">      52:</span> <span class="k"> *    htons(__u16 x)</span>
<a name="53" /><span class="True">      53:</span> <span class="k"> * It seems that some programs (which? where? or perhaps a standard? POSIX?)</span>
<a name="54" /><span class="True">      54:</span> <span class="k"> * might like the above to be functions, not macros (why?).</span>
<a name="55" /><span class="True">      55:</span> <span class="k"> * if that&apos;s true, then detect them, and take measures.</span>
<a name="56" /><span class="True">      56:</span> <span class="k"> * Anyway, the measure is: define only ___ntohl as a macro instead,</span>
<a name="57" /><span class="True">      57:</span> <span class="k"> * and in a separate file, have</span>
<a name="58" /><span class="True">      58:</span> <span class="k"> * unsigned long inline ntohl(x){return ___ntohl(x);}</span>
<a name="59" /><span class="True">      59:</span> <span class="k"> *</span>
<a name="60" /><span class="True">      60:</span> <span class="k"> * The same for constant arguments</span>
<a name="61" /><span class="True">      61:</span> <span class="k"> *    __constant_ntohl(__u32 x)</span>
<a name="62" /><span class="True">      62:</span> <span class="k"> *    __constant_ntohs(__u16 x)</span>
<a name="63" /><span class="True">      63:</span> <span class="k"> *    __constant_htonl(__u32 x)</span>
<a name="64" /><span class="True">      64:</span> <span class="k"> *    __constant_htons(__u16 x)</span>
<a name="65" /><span class="True">      65:</span> <span class="k"> *</span>
<a name="66" /><span class="True">      66:</span> <span class="k"> * Conversion of XX-bit integers (16- 32- or 64-)</span>
<a name="67" /><span class="True">      67:</span> <span class="k"> * between native CPU format and little/big endian format</span>
<a name="68" /><span class="True">      68:</span> <span class="k"> * 64-bit stuff only defined for proper architectures</span>
<a name="69" /><span class="True">      69:</span> <span class="k"> *    cpu_to_[bl]eXX(__uXX x)</span>
<a name="70" /><span class="True">      70:</span> <span class="k"> *    [bl]eXX_to_cpu(__uXX x)</span>
<a name="71" /><span class="True">      71:</span> <span class="k"> *</span>
<a name="72" /><span class="True">      72:</span> <span class="k"> * The same, but takes a pointer to the value to convert</span>
<a name="73" /><span class="True">      73:</span> <span class="k"> *    cpu_to_[bl]eXXp(__uXX x)</span>
<a name="74" /><span class="True">      74:</span> <span class="k"> *    [bl]eXX_to_cpup(__uXX x)</span>
<a name="75" /><span class="True">      75:</span> <span class="k"> *</span>
<a name="76" /><span class="True">      76:</span> <span class="k"> * The same, but change in situ</span>
<a name="77" /><span class="True">      77:</span> <span class="k"> *    cpu_to_[bl]eXXs(__uXX x)</span>
<a name="78" /><span class="True">      78:</span> <span class="k"> *    [bl]eXX_to_cpus(__uXX x)</span>
<a name="79" /><span class="True">      79:</span> <span class="k"> *</span>
<a name="80" /><span class="True">      80:</span> <span class="k"> * See asm-foo/byteorder.h for examples of how to provide</span>
<a name="81" /><span class="True">      81:</span> <span class="k"> * architecture-optimized versions</span>
<a name="82" /><span class="True">      82:</span> <span class="k"> *</span>
<a name="83" /><span class="True">      83:</span> <span class="k"> */</span>
<a name="84" /><span class="True">      84:</span> 
<a name="85" /><span class="True">      85:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_ref.html#_Y3B1X3RvX2xlNjRfMA__"><span class="b">cpu_to_le64</span></a> <a href="cpu.c_macros_ref.html#_X19jcHVfdG9fbGU2NF8w"><span class="b">__cpu_to_le64</span></a>
<a name="86" /><span class="True">      86:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_ref.html#_bGU2NF90b19jcHVfMA__"><span class="b">le64_to_cpu</span></a> <a href="cpu.c_macros_ref.html#_X19sZTY0X3RvX2NwdV8w"><span class="b">__le64_to_cpu</span></a>
<a name="87" /><span class="True">      87:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_ref.html#_Y3B1X3RvX2xlMzJfMA__"><span class="b">cpu_to_le32</span></a> <a href="cpu.c_macros_ref.html#_X19jcHVfdG9fbGUzMl8w"><span class="b">__cpu_to_le32</span></a>
<a name="88" /><span class="True">      88:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_ref.html#_bGUzMl90b19jcHVfMA__"><span class="b">le32_to_cpu</span></a> <a href="cpu.c_macros_ref.html#_X19sZTMyX3RvX2NwdV8w"><span class="b">__le32_to_cpu</span></a>
<a name="89" /><span class="True">      89:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_ref.html#_Y3B1X3RvX2xlMTZfMA__"><span class="b">cpu_to_le16</span></a> <a href="cpu.c_macros_ref.html#_X19jcHVfdG9fbGUxNl8w"><span class="b">__cpu_to_le16</span></a>
<a name="90" /><span class="True">      90:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_ref.html#_bGUxNl90b19jcHVfMA__"><span class="b">le16_to_cpu</span></a> <a href="cpu.c_macros_ref.html#_X19sZTE2X3RvX2NwdV8w"><span class="b">__le16_to_cpu</span></a>
<a name="91" /><span class="True">      91:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_ref.html#_Y3B1X3RvX2JlNjRfMA__"><span class="b">cpu_to_be64</span></a> <a href="cpu.c_macros_ref.html#_X19jcHVfdG9fYmU2NF8w"><span class="b">__cpu_to_be64</span></a>
<a name="92" /><span class="True">      92:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_ref.html#_YmU2NF90b19jcHVfMA__"><span class="b">be64_to_cpu</span></a> <a href="cpu.c_macros_ref.html#_X19iZTY0X3RvX2NwdV8w"><span class="b">__be64_to_cpu</span></a>
<a name="93" /><span class="True">      93:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_ref.html#_Y3B1X3RvX2JlMzJfMA__"><span class="b">cpu_to_be32</span></a> <a href="cpu.c_macros_ref.html#_X19jcHVfdG9fYmUzMl8w"><span class="b">__cpu_to_be32</span></a>
<a name="94" /><span class="True">      94:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_ref.html#_YmUzMl90b19jcHVfMA__"><span class="b">be32_to_cpu</span></a> <a href="cpu.c_macros_ref.html#_X19iZTMyX3RvX2NwdV8w"><span class="b">__be32_to_cpu</span></a>
<a name="95" /><span class="True">      95:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_ref.html#_Y3B1X3RvX2JlMTZfMA__"><span class="b">cpu_to_be16</span></a> <a href="cpu.c_macros_ref.html#_X19jcHVfdG9fYmUxNl8w"><span class="b">__cpu_to_be16</span></a>
<a name="96" /><span class="True">      96:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_ref.html#_YmUxNl90b19jcHVfMA__"><span class="b">be16_to_cpu</span></a> <a href="cpu.c_macros_ref.html#_X19iZTE2X3RvX2NwdV8w"><span class="b">__be16_to_cpu</span></a>
<a name="97" /><span class="True">      97:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_Y3B1X3RvX2xlNjRwXzA_"><span class="b">cpu_to_le64p</span></a> <span class="b">__cpu_to_le64p</span>
<a name="98" /><span class="True">      98:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_bGU2NF90b19jcHVwXzA_"><span class="b">le64_to_cpup</span></a> <span class="b">__le64_to_cpup</span>
<a name="99" /><span class="True">      99:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_Y3B1X3RvX2xlMzJwXzA_"><span class="b">cpu_to_le32p</span></a> <span class="b">__cpu_to_le32p</span>
<a name="100" /><span class="True">     100:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_bGUzMl90b19jcHVwXzA_"><span class="b">le32_to_cpup</span></a> <span class="b">__le32_to_cpup</span>
<a name="101" /><span class="True">     101:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_Y3B1X3RvX2xlMTZwXzA_"><span class="b">cpu_to_le16p</span></a> <span class="b">__cpu_to_le16p</span>
<a name="102" /><span class="True">     102:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_bGUxNl90b19jcHVwXzA_"><span class="b">le16_to_cpup</span></a> <span class="b">__le16_to_cpup</span>
<a name="103" /><span class="True">     103:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_Y3B1X3RvX2JlNjRwXzA_"><span class="b">cpu_to_be64p</span></a> <span class="b">__cpu_to_be64p</span>
<a name="104" /><span class="True">     104:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_YmU2NF90b19jcHVwXzA_"><span class="b">be64_to_cpup</span></a> <span class="b">__be64_to_cpup</span>
<a name="105" /><span class="True">     105:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_Y3B1X3RvX2JlMzJwXzA_"><span class="b">cpu_to_be32p</span></a> <span class="b">__cpu_to_be32p</span>
<a name="106" /><span class="True">     106:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_YmUzMl90b19jcHVwXzA_"><span class="b">be32_to_cpup</span></a> <span class="b">__be32_to_cpup</span>
<a name="107" /><span class="True">     107:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_Y3B1X3RvX2JlMTZwXzA_"><span class="b">cpu_to_be16p</span></a> <span class="b">__cpu_to_be16p</span>
<a name="108" /><span class="True">     108:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_YmUxNl90b19jcHVwXzA_"><span class="b">be16_to_cpup</span></a> <span class="b">__be16_to_cpup</span>
<a name="109" /><span class="True">     109:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_Y3B1X3RvX2xlNjRzXzA_"><span class="b">cpu_to_le64s</span></a> <a href="cpu.c_macros_noref.html#_X19jcHVfdG9fbGU2NHNfMA__"><span class="b">__cpu_to_le64s</span></a>
<a name="110" /><span class="True">     110:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_bGU2NF90b19jcHVzXzA_"><span class="b">le64_to_cpus</span></a> <a href="cpu.c_macros_noref.html#_X19sZTY0X3RvX2NwdXNfMA__"><span class="b">__le64_to_cpus</span></a>
<a name="111" /><span class="True">     111:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_Y3B1X3RvX2xlMzJzXzA_"><span class="b">cpu_to_le32s</span></a> <a href="cpu.c_macros_noref.html#_X19jcHVfdG9fbGUzMnNfMA__"><span class="b">__cpu_to_le32s</span></a>
<a name="112" /><span class="True">     112:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_bGUzMl90b19jcHVzXzA_"><span class="b">le32_to_cpus</span></a> <a href="cpu.c_macros_noref.html#_X19sZTMyX3RvX2NwdXNfMA__"><span class="b">__le32_to_cpus</span></a>
<a name="113" /><span class="True">     113:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_Y3B1X3RvX2xlMTZzXzA_"><span class="b">cpu_to_le16s</span></a> <a href="cpu.c_macros_noref.html#_X19jcHVfdG9fbGUxNnNfMA__"><span class="b">__cpu_to_le16s</span></a>
<a name="114" /><span class="True">     114:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_bGUxNl90b19jcHVzXzA_"><span class="b">le16_to_cpus</span></a> <a href="cpu.c_macros_noref.html#_X19sZTE2X3RvX2NwdXNfMA__"><span class="b">__le16_to_cpus</span></a>
<a name="115" /><span class="True">     115:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_Y3B1X3RvX2JlNjRzXzA_"><span class="b">cpu_to_be64s</span></a> <a href="cpu.c_macros_noref.html#_X19jcHVfdG9fYmU2NHNfMA__"><span class="b">__cpu_to_be64s</span></a>
<a name="116" /><span class="True">     116:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_YmU2NF90b19jcHVzXzA_"><span class="b">be64_to_cpus</span></a> <a href="cpu.c_macros_noref.html#_X19iZTY0X3RvX2NwdXNfMA__"><span class="b">__be64_to_cpus</span></a>
<a name="117" /><span class="True">     117:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_Y3B1X3RvX2JlMzJzXzA_"><span class="b">cpu_to_be32s</span></a> <a href="cpu.c_macros_noref.html#_X19jcHVfdG9fYmUzMnNfMA__"><span class="b">__cpu_to_be32s</span></a>
<a name="118" /><span class="True">     118:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_YmUzMl90b19jcHVzXzA_"><span class="b">be32_to_cpus</span></a> <a href="cpu.c_macros_noref.html#_X19iZTMyX3RvX2NwdXNfMA__"><span class="b">__be32_to_cpus</span></a>
<a name="119" /><span class="True">     119:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_Y3B1X3RvX2JlMTZzXzA_"><span class="b">cpu_to_be16s</span></a> <a href="cpu.c_macros_noref.html#_X19jcHVfdG9fYmUxNnNfMA__"><span class="b">__cpu_to_be16s</span></a>
<a name="120" /><span class="True">     120:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_YmUxNl90b19jcHVzXzA_"><span class="b">be16_to_cpus</span></a> <a href="cpu.c_macros_noref.html#_X19iZTE2X3RvX2NwdXNfMA__"><span class="b">__be16_to_cpus</span></a>
<a name="121" /><span class="True">     121:</span> 
<a name="122" /><span class="True">     122:</span> <span class="k">/*</span>
<a name="123" /><span class="True">     123:</span> <span class="k"> * They have to be macros in order to do the constant folding</span>
<a name="124" /><span class="True">     124:</span> <span class="k"> * correctly - if the argument passed into a inline function</span>
<a name="125" /><span class="True">     125:</span> <span class="k"> * it is no longer constant according to gcc..</span>
<a name="126" /><span class="True">     126:</span> <span class="k"> */</span>
<a name="127" /><span class="True">     127:</span> 
<a name="128" /><span class="True">     128:</span> <span class="f">#</span><span class="n">undef</span> <a href="cpu.c_macros_noref.html#_bnRvaGxfMA__"><span class="b">ntohl</span></a>
<a name="129" /><span class="True">     129:</span> <span class="f">#</span><span class="n">undef</span> <a href="cpu.c_macros_noref.html#_bnRvaHNfMA__"><span class="b">ntohs</span></a>
<a name="130" /><span class="True">     130:</span> <span class="f">#</span><span class="n">undef</span> <a href="cpu.c_macros_noref.html#_aHRvbmxfMA__"><span class="b">htonl</span></a>
<a name="131" /><span class="True">     131:</span> <span class="f">#</span><span class="n">undef</span> <a href="cpu.c_macros_noref.html#_aHRvbnNfMA__"><span class="b">htons</span></a>
<a name="132" /><span class="True">     132:</span> 
<a name="133" /><span class="True">     133:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_X19faHRvbmxfMA__"><span class="b">___htonl</span></a><span class="f">(</span><span class="b">x</span><span class="f">)</span> <a href="cpu.c_macros_ref.html#_X19jcHVfdG9fYmUzMl8w"><span class="b">__cpu_to_be32</span></a><span class="f">(</span><span class="b">x</span><span class="f">)</span>
<a name="134" /><span class="True">     134:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_X19faHRvbnNfMA__"><span class="b">___htons</span></a><span class="f">(</span><span class="b">x</span><span class="f">)</span> <a href="cpu.c_macros_ref.html#_X19jcHVfdG9fYmUxNl8w"><span class="b">__cpu_to_be16</span></a><span class="f">(</span><span class="b">x</span><span class="f">)</span>
<a name="135" /><span class="True">     135:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_X19fbnRvaGxfMA__"><span class="b">___ntohl</span></a><span class="f">(</span><span class="b">x</span><span class="f">)</span> <a href="cpu.c_macros_ref.html#_X19iZTMyX3RvX2NwdV8w"><span class="b">__be32_to_cpu</span></a><span class="f">(</span><span class="b">x</span><span class="f">)</span>
<a name="136" /><span class="True">     136:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_X19fbnRvaHNfMA__"><span class="b">___ntohs</span></a><span class="f">(</span><span class="b">x</span><span class="f">)</span> <a href="cpu.c_macros_ref.html#_X19iZTE2X3RvX2NwdV8w"><span class="b">__be16_to_cpu</span></a><span class="f">(</span><span class="b">x</span><span class="f">)</span>
<a name="137" /><span class="True">     137:</span> 
<a name="138" /><span class="True">     138:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_aHRvbmxfMA__"><span class="b">htonl</span></a><span class="f">(</span><span class="b">x</span><span class="f">)</span> <a href="cpu.c_macros_noref.html#_X19faHRvbmxfMA__"><span class="b">___htonl</span></a><span class="f">(</span><span class="b">x</span><span class="f">)</span>
<a name="139" /><span class="True">     139:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_bnRvaGxfMA__"><span class="b">ntohl</span></a><span class="f">(</span><span class="b">x</span><span class="f">)</span> <a href="cpu.c_macros_noref.html#_X19fbnRvaGxfMA__"><span class="b">___ntohl</span></a><span class="f">(</span><span class="b">x</span><span class="f">)</span>
<a name="140" /><span class="True">     140:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_aHRvbnNfMA__"><span class="b">htons</span></a><span class="f">(</span><span class="b">x</span><span class="f">)</span> <a href="cpu.c_macros_noref.html#_X19faHRvbnNfMA__"><span class="b">___htons</span></a><span class="f">(</span><span class="b">x</span><span class="f">)</span>
<a name="141" /><span class="True">     141:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_bnRvaHNfMA__"><span class="b">ntohs</span></a><span class="f">(</span><span class="b">x</span><span class="f">)</span> <a href="cpu.c_macros_noref.html#_X19fbnRvaHNfMA__"><span class="b">___ntohs</span></a><span class="f">(</span><span class="b">x</span><span class="f">)</span>
<a name="142" /><span class="True">     142:</span> 
<a name="143" /><span class="True">     143:</span> <span class="m">static</span> <span class="m">inline</span> <span class="m">void</span> <span class="b">le16_add_cpu</span><span class="f">(</span><span class="b">__le16</span> <span class="f">*</span><span class="b">var</span><span class="f">,</span> <span class="b">u16</span> <span class="b">val</span><span class="f">)</span>
<a name="144" /><span class="True">     144:</span> <span class="f">{</span>
<a name="145" /><span class="True">     145:</span>     <span class="f">*</span><span class="b">var</span> <span class="f">=</span> <a href="cpu.c_macros_ref.html#_Y3B1X3RvX2xlMTZfMA__"><span class="b">cpu_to_le16</span></a><span class="f">(</span><a href="cpu.c_macros_ref.html#_bGUxNl90b19jcHVfMA__"><span class="b">le16_to_cpu</span></a><span class="f">(</span><span class="f">*</span><span class="b">var</span><span class="f">)</span> <span class="f">+</span> <span class="b">val</span><span class="f">)</span><span class="f">;</span>
<a name="146" /><span class="True">     146:</span> <span class="f">}</span>
<a name="147" /><span class="True">     147:</span> 
<a name="148" /><span class="True">     148:</span> <span class="m">static</span> <span class="m">inline</span> <span class="m">void</span> <span class="b">le32_add_cpu</span><span class="f">(</span><span class="b">__le32</span> <span class="f">*</span><span class="b">var</span><span class="f">,</span> <a href="cpu.c_macros_ref.html#_dTMyXzA_"><span class="b">u32</span></a> <span class="b">val</span><span class="f">)</span>
<a name="149" /><span class="True">     149:</span> <span class="f">{</span>
<a name="150" /><span class="True">     150:</span>     <span class="f">*</span><span class="b">var</span> <span class="f">=</span> <a href="cpu.c_macros_ref.html#_Y3B1X3RvX2xlMzJfMA__"><span class="b">cpu_to_le32</span></a><span class="f">(</span><a href="cpu.c_macros_ref.html#_bGUzMl90b19jcHVfMA__"><span class="b">le32_to_cpu</span></a><span class="f">(</span><span class="f">*</span><span class="b">var</span><span class="f">)</span> <span class="f">+</span> <span class="b">val</span><span class="f">)</span><span class="f">;</span>
<a name="151" /><span class="True">     151:</span> <span class="f">}</span>
<a name="152" /><span class="True">     152:</span> 
<a name="153" /><span class="True">     153:</span> <span class="m">static</span> <span class="m">inline</span> <span class="m">void</span> <span class="b">le64_add_cpu</span><span class="f">(</span><span class="b">__le64</span> <span class="f">*</span><span class="b">var</span><span class="f">,</span> <span class="b">u64</span> <span class="b">val</span><span class="f">)</span>
<a name="154" /><span class="True">     154:</span> <span class="f">{</span>
<a name="155" /><span class="True">     155:</span>     <span class="f">*</span><span class="b">var</span> <span class="f">=</span> <a href="cpu.c_macros_ref.html#_Y3B1X3RvX2xlNjRfMA__"><span class="b">cpu_to_le64</span></a><span class="f">(</span><a href="cpu.c_macros_ref.html#_bGU2NF90b19jcHVfMA__"><span class="b">le64_to_cpu</span></a><span class="f">(</span><span class="f">*</span><span class="b">var</span><span class="f">)</span> <span class="f">+</span> <span class="b">val</span><span class="f">)</span><span class="f">;</span>
<a name="156" /><span class="True">     156:</span> <span class="f">}</span>
<a name="157" /><span class="True">     157:</span> 
<a name="158" /><span class="True">     158:</span> <span class="m">static</span> <span class="m">inline</span> <span class="m">void</span> <span class="b">be16_add_cpu</span><span class="f">(</span><span class="b">__be16</span> <span class="f">*</span><span class="b">var</span><span class="f">,</span> <span class="b">u16</span> <span class="b">val</span><span class="f">)</span>
<a name="159" /><span class="True">     159:</span> <span class="f">{</span>
<a name="160" /><span class="True">     160:</span>     <span class="f">*</span><span class="b">var</span> <span class="f">=</span> <a href="cpu.c_macros_ref.html#_Y3B1X3RvX2JlMTZfMA__"><span class="b">cpu_to_be16</span></a><span class="f">(</span><a href="cpu.c_macros_ref.html#_YmUxNl90b19jcHVfMA__"><span class="b">be16_to_cpu</span></a><span class="f">(</span><span class="f">*</span><span class="b">var</span><span class="f">)</span> <span class="f">+</span> <span class="b">val</span><span class="f">)</span><span class="f">;</span>
<a name="161" /><span class="True">     161:</span> <span class="f">}</span>
<a name="162" /><span class="True">     162:</span> 
<a name="163" /><span class="True">     163:</span> <span class="m">static</span> <span class="m">inline</span> <span class="m">void</span> <span class="b">be32_add_cpu</span><span class="f">(</span><span class="b">__be32</span> <span class="f">*</span><span class="b">var</span><span class="f">,</span> <a href="cpu.c_macros_ref.html#_dTMyXzA_"><span class="b">u32</span></a> <span class="b">val</span><span class="f">)</span>
<a name="164" /><span class="True">     164:</span> <span class="f">{</span>
<a name="165" /><span class="True">     165:</span>     <span class="f">*</span><span class="b">var</span> <span class="f">=</span> <a href="cpu.c_macros_ref.html#_Y3B1X3RvX2JlMzJfMA__"><span class="b">cpu_to_be32</span></a><span class="f">(</span><a href="cpu.c_macros_ref.html#_YmUzMl90b19jcHVfMA__"><span class="b">be32_to_cpu</span></a><span class="f">(</span><span class="f">*</span><span class="b">var</span><span class="f">)</span> <span class="f">+</span> <span class="b">val</span><span class="f">)</span><span class="f">;</span>
<a name="166" /><span class="True">     166:</span> <span class="f">}</span>
<a name="167" /><span class="True">     167:</span> 
<a name="168" /><span class="True">     168:</span> <span class="m">static</span> <span class="m">inline</span> <span class="m">void</span> <span class="b">be64_add_cpu</span><span class="f">(</span><span class="b">__be64</span> <span class="f">*</span><span class="b">var</span><span class="f">,</span> <span class="b">u64</span> <span class="b">val</span><span class="f">)</span>
<a name="169" /><span class="True">     169:</span> <span class="f">{</span>
<a name="170" /><span class="True">     170:</span>     <span class="f">*</span><span class="b">var</span> <span class="f">=</span> <a href="cpu.c_macros_ref.html#_Y3B1X3RvX2JlNjRfMA__"><span class="b">cpu_to_be64</span></a><span class="f">(</span><a href="cpu.c_macros_ref.html#_YmU2NF90b19jcHVfMA__"><span class="b">be64_to_cpu</span></a><span class="f">(</span><span class="f">*</span><span class="b">var</span><span class="f">)</span> <span class="f">+</span> <span class="b">val</span><span class="f">)</span><span class="f">;</span>
<a name="171" /><span class="True">     171:</span> <span class="f">}</span>
<a name="172" /><span class="True">     172:</span> 
<a name="173" /><span class="True">     173:</span> <span class="f">#</span><span class="n">endif</span> <span class="k">/* _LINUX_BYTEORDER_GENERIC_H */</span>
<a name="174" /><span class="True">     174:</span> </pre>
  </body>
</html>
